package easyexcel.listener;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author xuezhiqiang@sensetime.com
 * @create 2018-09-03 10:16
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExcelGB28181ViperVo  {

    @ExcelProperty(value= "视频源名称(必填)")
    private String name;

    @ExcelProperty(value= "接入平台名称(必填)")
    private String platformName;

    @ExcelProperty(value= "设备ID(必填)")
    private String deviceCode;

    @ExcelProperty(value= "接入类型(必填)")
    private String sourceName;

    @ExcelProperty(value= "经度(必填)")
    private String longitude;

    @ExcelProperty(value= "纬度(必填)")
    private String latitude;

    //命令类型：可选实时-0、回放-1，默认实时
    @ExcelProperty(value= "命令类型(必填)",converter = CustomStringIntegerConverter.class)
    private Integer sipPlayBack = 1;

    @ExcelProperty(value= "回放开始时间(选填)")
    private Date sipCallBeginTime;

    @ExcelProperty(value= "回放结束时间(选填)")
    private Date sipCallEndTime;

    //是否支持视第三方平台情况. Playback时可选. 取值[1/4, 1/2, 1, 2, 4]为正放倍速，取值[-1/4, -1/2, -1, -2, -4]为倒放倍速; Play时无效
    @ExcelProperty(value= "回放速度(选填)")
    private Float speed;

    @ExcelProperty(value= "回放平台名称(选填)")
    private String replayPlatformName;

    @ExcelProperty(value= "回放ID(选填)")
    private String replayId;

    @ExcelProperty(value= "备注(选填)")
    private String remark;

    //====GB28181Item begin
    @ExcelProperty(value= "设备名称(选填)")
    private String deviceName;

    @ExcelProperty(value= "设备厂商(选填)")
    private String manufacturer;

    @ExcelProperty(value= "设备型号(选填)")
    private String model;

    @ExcelProperty(value= "设备归属(选填)")
    private String owner;

    @ExcelProperty(value= "行政区划代码(选填)")
    private String civilCode;

    @ExcelProperty(value= "警区(选填)")
    private String block;

    @ExcelProperty(value= "安装地址(选填)")
    private String address;

    @ExcelProperty(value= "是否有子设备(选填)",converter = CustomStringIntegerConverter.class)
    private Integer parental = 0;

    @ExcelProperty(value= "父设备ID(选填)")
    private String parentId;

    @ExcelProperty(value= "信令安全模式(选填)",converter = CustomStringIntegerConverter.class)
    private Integer safetyWay = 0;

    @ExcelProperty(value= "注册方式(选填)",converter = CustomStringIntegerConverter.class)
    private Integer registerWay = 1;

    @ExcelProperty(value= "证书序列号(选填)")
    private String certNum;

    @ExcelProperty(value= "证书有效标识(选填)",converter = CustomStringIntegerConverter.class)
    private Integer certifiable = 0;

    @ExcelProperty(value= "无效原因码(选填)")
    private Integer errCode;

    @DateTimeFormat("yyyy-MM-dd")
    @ExcelProperty(value= "证书终止有效期(选填)")
    private Date endTime;

    @ExcelProperty(value= "保密属性(选填)",converter = CustomStringIntegerConverter.class)
    private Integer secrecy = 0;

    @ExcelProperty(value= "IP地址(选填)")
    private String ipAddress;

    @ExcelProperty(value= "端口号(选填)")
    private Integer port;

    @ExcelProperty(value= "设备口令(选填)")
    private String password;

    @ExcelProperty(value= "设备状态(选填)",converter = CustomStringStringConverter.class)
    private String status = "ON";

    //====GB28181Item end
    //====GB28181ItemInfo begin
    @ExcelProperty(value= "类型(选填)",converter = CustomStringIntegerConverter.class)
    private Integer ptzType;

    @ExcelProperty(value= "位置类型(选填)",converter = CustomStringIntegerConverter.class)
    private Integer positionType;

    @ExcelProperty(value= "安装位置(选填)",converter = CustomStringIntegerConverter.class)
    private Integer roomType;

    @ExcelProperty(value= "用途属性(选填)",converter = CustomStringIntegerConverter.class)
    private Integer useType;

    @ExcelProperty(value= "补光属性(选填)",converter = CustomStringIntegerConverter.class)
    private Integer supplyLightType;

    @ExcelProperty(value= "监视方向属性(选填)",converter = CustomStringIntegerConverter.class)
    private Integer directionType;

    @ExcelProperty(value= "支持分辨率(选填)")
    private String resolution;

    @ExcelProperty(value= "业务分组ID(选填)")
    private String businessGroupId;

    @ExcelProperty(value= "下载倍速范围(选填)")
    private String downloadSpeed;

    @ExcelProperty(value= "空域编码能力(选填)",converter = CustomStringIntegerConverter.class)
    private Integer svcSpaceSupportMode;

    @ExcelProperty(value= "时域编码能力(选填)",converter = CustomStringIntegerConverter.class)
    private Integer svcTimeSupportMode;
}
